package com.example.pomelo_home.service;


import com.alibaba.fastjson.JSONObject;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.web.client.RestTemplate;



@Service
public class WeChatService {

    @Value("${wechat.appid}")
    private String appId;

    @Value("${wechat.secret}")
    private String secret;

    private RestTemplate restTemplate;

    public WeChatService(RestTemplate restTemplate) {
        this.restTemplate = restTemplate;
    }

    public String getOpenid(String code) {
        String url = String.format("https://api.weixin.qq.com/sns/jscode2session?appid=%s&secret=%s&js_code=%s&grant_type=authorization_code",
                appId, secret, code);

        // 使用RestTemplate发送GET请求并获取响应字符串
        String responseStr = restTemplate.getForObject(url, String.class);

        // 使用fastjson解析响应字符串为JSONObject
        JSONObject jsonObject = JSONObject.parseObject(responseStr);

        // 检查JSON对象中是否包含openid字段
        if (jsonObject.containsKey("openid")) {
            // 打印当前时间和解析后的JSON对象（可选）
            //System.out.println("当前时间：" + LocalTime.now());
            //System.out.println(jsonObject);

            // 从JSON对象中获取openid并返回
            return jsonObject.getString("openid");
        } else {
            // 如果不包含openid字段，则抛出异常
            throw new RuntimeException("Failed to retrieve openid from WeChat API. Response: " + responseStr);
        }
    }
}
